The present invention relates to the field of workflow process management. More particularly the invention relates to a system and method for expediting execution of a process which has been delayed to bring execution time of the process closer to an expected value.
In a workflow world, there are process definitions and actual instances of these definitions called process instances or simply processes. These instances may be ‘enacted’ by a Process Engine (PE) which is part of any workflow manager. When a workflow process is instantiated there may be a requirement to complete (or at least make an effort to complete) the process according to a deadline that is set when the process starts. This deadline can be due either to business goals or to real life requirements. Workflow processes may involve coordinated execution of activities performed by workflow resources (e.g., a participant, a computer-based application, or an instrument). A workflow process may include a number of steps called work nodes and some decision making nodes. Activities may be initiated in work nodes and executed by participants which are also known as Business Objects (BOs). A process may be delayed because of delays caused while performing activities. The delays may in turn depend on data set in the process, data set in BOs, time of start of an activity, load on a BO etc. The process engine itself may not cause delays except under heavy load conditions and relatively small process instance lifetimes.
The present invention proposes a solution based on historical data to expedite execution of a process which becomes delayed. The proposed scheme may cause one or more work nodes in the workflow process to change its/their priority/priorities dynamically to bring the execution time of an entire process to be within a deadline or at least closer to an expected value. The historical data collected from completed process instances corresponding to a process definition can be used as a basis for estimating values for Expected Time to Complete (ETC) for any new process instance at any work node during its execution. Typically these time values are dependent on priorities with which the activities are executed. If a process is entering a node , then an ETC value T associated with that node would indicate that, the rest of the process is expected to take a time T to complete execution.
‘Priority based scheduling’ is performed in the PE to meet the deadline. Work nodes with higher priority are executed faster than work nodes with lower priority. Route nodes do not take time to execute and therefore do not have priorities. It will be assumed herein that participants/BOs in a process are able to execute activities with different priorities as requested by the PE.
Work nodes request Business Objects to execute activities. These BOs can execute activities at different priorities resulting in different execution times. The cumulative time from all work nodes encountered from current node onwards till the process completes is reflected in the value of an ETC at the current node. This is why the ETC at any node is lowest for the highest priority.
An ability to predict process completion times accurately may enable business to save costs, utilize their resources more effectively and make commitments to their customers. In a managed workflow process, delaying activities may be identified and appropriate solutions applied to accelerate them. As a by-product, performance data collected while executing process instances may be used for capacity planning, tuning performance and identifying bottlenecks in a workflow process.
As described above a typical workflow process includes a number of steps called work nodes and some route nodes for making decisions. Referring to FIG. 1, activities initiated in the work nodes are executed by BOs 10, 11, 12. Processes or process instances are defined by a user in Process Definer module 13. Processes are defined in a language developed by Hewlett Packard (HP) called HPPM Process Definition Language (PDL). A Process Engine module 14 enables a user to launch an instance of a process from a process definition. A PDL can be loaded and unloaded from the Process Engine module (PE). Resource Executive module 21 takes resource assignment requests from the PE and assigns resources to activities. Process Monitoring module 15 makes available information about the status of active process instances as well as the history of completed process instances. Auditing module 16 produces a log of audit information which is stored in Audit Trail 17. Data items of each process execution are stored in workflow process database management system (DBMS) 18. Database Manager module 19 provides an interface between Process Engine module 14 and database 18. CORBA (Common Object Request Broker Architecture) message bus 20 provides a common message bus between process engine module 14 and BOs 10, 11, 12. PE module 14 sends an Activity Handle (AH) message to a BO to request the BO to execute an activity, being a piece of work performed by the BO. The BO sends an Activity Handle Reply (AHR) message to PE module 14 after completing execution of the activity.